home *** CD-ROM | disk | FTP | other *** search
- {
- RN> Hi! Does anyone know if it's possible to modify the
- RN> characters in the ASCII chart using Pascal? The reason I
- RN> want to do this is to define the upper ASCII characters
- RN> (128+) to implement the Cyrillic alphabet, for an
- RN> application I'm developping (or will be developping if I can
- RN> figure this out :-)))
- }
-
- Unit Font;
-
- { AX = $1110 (ah = $11, al = $10)
- BH = bytes per character
- BL = block to load to. (use 0)
- CX = number of character defined by table
- DX = starting character value
- ES = segment of the table (use Seg())
- BP = offset of the table (use Ofs()) }
- Interface
-
- Procedure DoFont(Fname: String);
-
- Implementation
-
- Uses DOS;
- Type FontArray= Array[1..$1000] of Char;
-
- FontFile= Record
- Gfont_POINTS: Byte;
- Gfont: FontArray;
- End; {of record}
- VAR FonF: File;
- Tfont: FontFile;
- ESr,BPr: Word;
- {---------------------------------------------------------------------------}
- Procedure DoFont(Fname: String);
-
- VAR R: Registers;
-
- Begin;
- Assign (FonF,Fname+'.FON');
- Reset (FonF, SizeOf(FontFile));
- BlockRead (FonF, Tfont, 1);
- Close (FonF);
- ESr:= Seg(Tfont.Gfont);
- BPr:= Ofs(Tfont.Gfont);
- r.ax := $1110;
- r.bh := Tfont.Gfont_Points; (* bytes per character *)
- r.bl := 0; (* load to block 0 *)
- r.cx := 256; (* 256 characters *)
- r.dx := 0; (* start with character 0 *)
- r.es := Seg(Tfont.Gfont); (* segment of table *)
- r.bp := Ofs(Tfont.Gfont); (* offset of the table *)
- intr($10, r);
- End; {of procedure}
-
- End.